package com.vivachek.protocol.converts

import com.vivachek.protocol.ParseListener
import com.vivachek.protocol.enums.UnitEnums


/**
 * @Author: YCB
 * @Time: 2022/9/26 18:32
 * @Email: congbin.yuan@vivachek.com
 * @Description: 蓝牙数据解析基类
 *
 * @param command 命令码
 * @param expandCode 扩展码
 * @param length 实际可以解析的数据长度
 */
internal abstract class DataConvert(val command: Int,val expandCode: Int,val length: Int)  {

    var listener:ParseListener?=null

    /**
     * @param command 命令码
     * @param expandCode 扩展码
     * @param length 数据长度
     */
    open fun hit(command:Int,expandCode:Int,length: Int):Boolean {
        return command == this.command && expandCode == this.expandCode && length==this.length
    }


    /**
     * @param data 这里是经过拆分好的实际数据
     * @param origin 完整原始数据 7B开头 7D结尾的
     */
    abstract fun parse(data:List<Int>,origin:List<Int>)
}